//package com.yuan.pdf;
//
//ppackage com.hisw.internet.common.utils;
//
//import com.itextpdf.text.Document;
//import com.itextpdf.text.DocumentException;
//import com.itextpdf.text.Image;
//import com.itextpdf.text.Rectangle;
//import com.itextpdf.text.pdf.*;
//import org.apache.commons.lang.StringUtils;
//import org.apache.tomcat.util.http.fileupload.FileUtils;
//
//import java.io.ByteArrayOutputStream;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.util.Map;
//
//public class puntil {
//
//    public static void pdfOut(Map<String, Object> map, String templatePath, String newPDFPath) {
//        // 利用模板生成pdf
//        PdfReader reader;
//        FileOutputStream out;
//        ByteArrayOutputStream bos;
//        PdfStamper stamper;
//        try {
////            String realPath = DictUtils.getDictValue("VIRTUAL_DIRECTORIES", "sys_config", "");
//            BaseFont bf = BaseFont.createFont("/templates/modules/simsun.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
//            FileUtils.createFile(newPDFPath);
//            out = new FileOutputStream(newPDFPath);
//            reader = new PdfReader(templatePath);
//            bos = new ByteArrayOutputStream();
//            stamper = new PdfStamper(reader, bos);
//            AcroFields form = stamper.getAcroFields();
//
//            // 文字类的内容处理
//            Map<String, String> charMap = (Map<String, String>) map.get("charMap");
//            form.addSubstitutionFont(bf);
//            if (charMap != null) {
//                for (String key : charMap.keySet()) {
//                    String value = charMap.get(key);
//                    if(StringUtils.isNotBlank(value)){
//                        form.setField(key, value);
//                    }
//                }
//            }
//            // 复选框的内容处理
//            Map<String, String> checkBoxMap = (Map<String, String>) map.get("checkBoxMap");
//            if (checkBoxMap != null) {
//                for (String key : checkBoxMap.keySet()) {
//                    form.setField(key, "是", "true");
//                }
//            }
//            Map<String, String> unitMap = (Map<String, String>) map.get("unitMap");
//            if (unitMap != null) {
//                for (String key : unitMap.keySet()) {
//                    String value = unitMap.get(key);
//                    if(StringUtils.isNotBlank(value)){
//                        form.setField(key, value);
//                    }
//                }
//            }
//
//            Map<String, String> unitSummaryMap = (Map<String, String>) map.get("unitSummaryMap");
//            if (unitSummaryMap != null) {
//                for (String key : unitSummaryMap.keySet()) {
//                    String value = unitSummaryMap.get(key);
//                    if(StringUtils.isNotBlank(value)){
//                        form.setField(key, value);
//                    }
//                }
//            }
//            // 图片类的内容处理
//            try {
//                Map<String, String> imgMap = (Map<String, String>) map.get("imgMap");
//                if (imgMap != null) {
//                    for (String key : imgMap.keySet()) {
//                        String imgPath = imgMap.get(key);
//                        int pageNo = form.getFieldPositions(key).get(0).page;
//                        Rectangle signRect = form.getFieldPositions(key).get(0).position;
//                        float x = signRect.getLeft();
//                        float y = signRect.getBottom();
//                        //根据路径读取图片
//                        Image image = Image.getInstance(imgPath);
//                        //获取图片页面
//                        PdfContentByte under = stamper.getOverContent(pageNo);
//                        //图片大小自适应
//                        image.scaleToFit(signRect.getWidth(), signRect.getHeight());
//                        //添加图片
//                        image.setAbsolutePosition(x, y);
//                        under.addImage(image);
//                    }
//                }
//            } catch (Exception e) {
//
//            }
//            // 如果为false，生成的PDF文件可以编辑，如果为true，生成的PDF文件不可以编辑
//            stamper.setFormFlattening(true);
//            stamper.close();
//            Document doc = new Document();
//            PdfCopy copy = new PdfCopy(doc, out);
//            doc.open();
//            PdfImportedPage importPage = copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);
//            copy.addPage(importPage);
//            doc.close();
//            out.close();
//            reader.close();
//        } catch (IOException | DocumentException ex) {
//        }
//    }
//}}
